package com.rescueletter.DAL;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import com.rescueletter.BEL.*;

public class PruebaMetodosCRUDDAL {

	/**
	 * Method: Obtiene el valor de un procedimiento almacenado sin enviar parametros.
	 * Return: Retorna el valor que ha obtenido del procedimiento.
	 * */
	public List<PermisoUsuario> ObtenerDatosProcedureDAL()
	{
		List<PermisoUsuario> lista = new ArrayList<PermisoUsuario>();
		PermisoUsuario entidad = new PermisoUsuario();
		EslabonarDAL objetoConexion = new EslabonarDAL();
		
		
		try
		{	Connection conexion = objetoConexion.getSQLConnection();
			CallableStatement cStmt = conexion.prepareCall("{CALL pruebaSeleccionParametro(?,?)}");
			cStmt.setInt(1, 0);
			cStmt.setString(2, "GOD");
			
			cStmt.execute();
			
			ResultSet rs = cStmt.getResultSet();	
			
			while(rs.next())
			{
				entidad.setID(rs.getInt(1));
				entidad.setTipo(rs.getInt(2));
				entidad.setDescripcion(rs.getString(3));
				
				lista.add(entidad);
			}
			
			conexion.close();
			cStmt.close();
			
			return lista;
		}
		catch(Exception ex)
		{
			// TODO: handle exception
		}
		
		return lista;
	}

	/**Method:Inserta un nuevo registro, para los permisos de usuario
	 * Return: Retorna true si el registros fue insertado.
	 * */
	public boolean InsertarProcedureDAL(PermisoUsuario entidad)
	{
		EslabonarDAL objetoConexion = new EslabonarDAL();
		boolean respuesta = false;
		
		try 
		{
			Connection conexion = objetoConexion.getSQLConnection();
			CallableStatement cStmt = conexion.prepareCall("{CALL pruebaInserccion(?,?,?)}");
			cStmt.setInt(1, entidad.getID());
			cStmt.setInt(2, entidad.getTipo());
			cStmt.setString(3, entidad.getDescripcion());
			
			respuesta = cStmt.execute();
			
			
		} catch (Exception e) {
			// TODO: handle exception
		}
		return respuesta;
	}

}
